package cn.iocoder.yudao.module.infra.dal.mysql.ocr;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.infra.controller.admin.ocr.vo.record.OcrRecordPageReqVO;
import cn.iocoder.yudao.module.infra.dal.dataobject.ocr.OcrRecordDO;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface OcrRecordMapper extends BaseMapperX<OcrRecordDO> {

    default PageResult<OcrRecordDO> selectPage(OcrRecordPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<OcrRecordDO>()
                .eqIfPresent(OcrRecordDO::getConfigId, reqVO.getConfigId())
                .eqIfPresent(OcrRecordDO::getOcrType, reqVO.getType())
                .likeIfPresent(OcrRecordDO::getFileName, reqVO.getFileName())
                .eqIfPresent(OcrRecordDO::getStatus, reqVO.getStatus())
                .betweenIfPresent(OcrRecordDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(OcrRecordDO::getId));
    }

    default OcrRecordDO selectByFileId(Long fileId) {
        return selectOne(OcrRecordDO::getFileId, fileId);
    }

}